QPNP LCDB (LCD Bias) Regulator

QPNP LCDB module provides voltage bias to the LCD display panel. The biases
are positive (VDISP - supported by LDO) and negative (VDISN - supported by
NCP) voltage signals. The module also supports TTW (touch-to-wake) capability.

This document describes the bindings for QPNP LCDB module.

=======================
Required Node Structure
=======================

LCDB module must be described in two level of device nodes.

==============================
First Level Node - LCDB module
==============================

- compatible
	Usage:      required
	Value type: <string>
	Definition: should be "qcom,qpnp-lcdb-regulator"

- reg
	Usage:      required
	Value type: <prop-encoded-array>
	Definition:  Base address of the LCDB SPMI peripheral.

- qcom,pmic-revid
	Usage:      required
	Value type: <phandle>
	Definition:  Phandle to the PMIC's revid node

- qcom,voltage-step-ramp
	Usage:      optional
	Value type: <bool>
	Definition:  Required only if the voltage needs to be set in the
		     steps of 500 mV starting from the 4500 mV. This needs
		     to be enabled only on platforms where voltage needs to
		     be ramped up with multiple steps.

- qcom,pwrdn-delay-ms
	Usage:      optional
	Value type: <u32>
	Definition:  Required to control the LDO power down delay.
		     Possible values are 0, 1, 4, 8.

Touch-to-wake (TTW) properties:

TTW supports 2 modes of operation - HW and SW. In the HW mode the enable/disable
logic is controlled by an external signal (pin) where as in the SW mode it is
is controlled by a pre-configured timer (ton/toff) programmed in the TTW
register.

Properties below are specific to TTW mode only. They are sepecified in the
main node.

- qcom,ttw-enable
	Usage:      optional
	Value type:  <bool>
	Definition: Touch to wake-up support enabled.

- qcom,ttw-mode-sw
	Usage:      optional
	Value type:  <bool>
	Definition: Touch to wake supported in SW mode.
		    If not defined, ttw is enabled by HW pin.

- qcom,attw-toff-ms
	Usage:      required if 'qcom,ttw-mode-sw' is true.
	Value type:  <bool>
	Definition: Off time (in mS) for the VDISP/VDISN signals.
		    Possible values are 4, 8, 16, 32.

- qcom,attw-ton-ms
	Usage:      required if 'qcom,ttw-mode-sw' is true.
	Value type:  <bool>
	Definition: ON time (in mS) for the VDISP/VDISN signals.
		    Possible values are 4, 8, 16, 32.

========================================
Second Level Nodes - LDO/NCP/BOOST block
========================================

LDO / NCP subnode common properties:

Properties below are common to the LDO and NCP bias.

- label
	Usage:      required
	Value type: <string>
	Definition: A string used to describe the bias type.
		    Possible values are ldo, ncp, bst.

- regulator-name
	Usage:      required
	Value type: <string>
	Definition: A string used to describe the regulator.

- regulator-min-microvolt
	Usage:      required
	Value type: <u32>
	Definition: Minimum voltage (in uV) supported by the bias.

- regulator-max-microvolt
	Usage:      required
	Value type: <u32>
	Definition: Maximum voltage (in uV) supported by the bias.


LDO subnode properties:

Properties below are specific to LDO bias only.

- qcom,ldo-voltage-mv
	Usage:      optional
	Value type:  <u32>
	Definition: Voltage (in mV) progammed for the LDO (VDISP).
		    Possile values are 4000mV to 6000mV. The range
		    4000mV to 4900mV is in 100mV steps and 4900mV to
		    6000mV is in 50mV steps.

- qcom,ldo-pd
	Usage:      optional
	Value type:  <u32>
	Definition: Pull-down configuration of LDO. Possible values are:
		    1 - Enable pull-down
		    0 - Disable pull-down

- qcom,ldo-pd-strength
	Usage:      optional
	Value type:  <u32>
	Definition: Pull-down strength. Possible values are:
		    0 - Weak pull-down
		    1 - Strong pull-down

- qcom,ldo-ilim-ma
	Usage:      optional
	Value type:  <u32>
	Definition:  Current limit (in mA) of the LDO bias.
		     Possible values are 110, 160, 210, 260, 310, 360, 410, 460.

- qcom,ldo-soft-start-us
	Usage:      optional
	Value type:  <u32>
	Definition:  Soft-start time (in uS) of the LDO bias.
		     Possible values are 0, 500, 1000, 2000.


NCP subnode properties:

Properties below are specific to NCP bias only.

- qcom,ncp-voltage-mv
	Usage:      optional
	Value type:  <u32>
	Definition: Voltage (in mV) progammed for the NCP (VDISN).
		    Possile values are 4000mV to 6000mV. The range
		    4000mV to 4900mV is in 100mV steps and 4900mV to
		    6000mV is in 50mV steps.

- qcom,ncp-pd
	Usage:      optional
	Value type:  <u32>
	Definition: Pull-down configuration of NCP. Possible values are:
		    1 - Enable pull-down
		    0 - Disable pull-down

- qcom,ncp-pd-strength
	Usage:      optional
	Value type:  <u32>
	Definition: Pull-down strength. Possible values are:
		    0 - Weak pull-down
		    1 - Strong pull-down

- qcom,ncp-ilim-ma
	Usage:      optional
	Value type:  <u32>
	Definition:  Current limit (in mA) of the NCP bias.
		     Possible values are 260, 460, 640, 810.

- qcom,ncp-soft-start-us
	Usage:      optional
	Value type:  <u32>
	Definition:  Soft-start time (in uS) of the NCP bias.
		     Possible values are 0, 500, 1000, 2000.


BOOST subnode properties:

Properties below are specific to BOOST subnode only.

- qcom,bst-pd
	Usage:      optional
	Value type:  <bool>
	Definition: Pull-down configuration of BOOST. Possible values are:
		    1 - Enable pull-down
		    0 - Disable pull-down

- qcom,bst-pd-strength
	Usage:      optional
	Value type:  <u32>
	Definition: Pull-down strength. Possible values are:
		    0 - Weak pull-down
		    1 - Strong pull-down

- qcom,bst-ps
	Usage:      optional
	Value type:  <u32>
	Definition: Pulse-skip configuration for boost. Possible values are:
		    1 - Enable Pulse-skip
		    0 - Disable Pulse-skip

- qcom,bst-ps-threshold-ma
	Usage:      optional
	Value type:  <u32>
	Definition: Current threshold (in mA) at which pulse-skip is entered.
		    Possible values are 50, 60, 70, 80.

- qcom,bst-ilim-ma
	Usage:      optional
	Value type:  <u32>
	Definition:  Current limit (in mA) of the BOOST rail.
		     Possible values are 200 to 1600mA in 200mA steps.

- qcom,bst-headroom-mv
	Usage:      optional
	Value type:  <u16>
	Definition:  Headroom of the boost (in mV). If not specified, then the
		     default value is 200 mV (PM660L) or 150 mV (for PM8150L or
		     PMI632).

=======
Example
=======

pm660l_lcdb: qpnp-lcdb@ec00 {
	compatible = "qcom,qpnp-lcdb-regulator";
	#address-cells = <1>;
	#size-cells = <1>;
	reg = <0xec00 0x100>;

	qcom,ttw-enable;

	lcdb_ldo_vreg: ldo {
		label = "ldo";
		regulator-name = "lcdb_ldo";
		regulator-min-microvolt = <4000000>;
		regulator-max-microvolt = <6000000>;

		qcom,ldo-voltage-mv = <5400>;
		qcom,ldo-pd = <1>;
		qcom,ldo-pd-strength = <1>;
	};

	lcdb_ncp_vreg: ncp {
		label = "ncp";
		regulator-name = "lcdb_ncp";
		regulator-min-microvolt = <4000000>;
		regulator-max-microvolt = <6000000>;

		qcom,ncp-voltage-mv = <5400>;
		qcom,ncp-pd = <1>;
		qcom,ncp-pd-strength = <1>;
	};

	lcdb_bst: bst {
		label = "bst";

		qcom,bst-pd = <1>;
		qcom,bst-pd-strength = <1>;
		qcom,bst-ps = <1>;
		qcom,bst-ps-threshold-ma = <50>;
		qcom,bst-headroom-mv = <200>;
	};
};
